package com.gamesnet.models;


public class Message extends Listable{
	
	private String dateEnvoi;
	private String objet, contenu;
	private long id;
	private boolean lu;
	private Utilisateur expediteur;
	private Utilisateur destinataire;
	
	public Message() {}
	
	public Message(Utilisateur expediteur, long id, String objet, String contenu) {
		this.id = id;
		this.objet = objet;
		this.contenu = contenu;
		this.expediteur = expediteur;
		
	}
	
	public Message(long id, Utilisateur destinataire, String objet, String contenu) {
		this.id = id;
		this.objet = objet;
		this.contenu = contenu;
		this.destinataire = destinataire;
		
	}
	
	public Message(long id, String objet, Utilisateur expediteur, String dateEnvoi, boolean lu){
		this.id = id;
		this.dateEnvoi = dateEnvoi;
		this.objet = objet;
		this.expediteur = expediteur;
		this.lu = lu;
	}
	
	public Message(long id, String objet, String dateEnvoi, Utilisateur desinataire){
		this.id = id;
		this.dateEnvoi = dateEnvoi;
		this.objet = objet;
		this.destinataire = desinataire;
	}
	
	//Constructor for test
	public Message(String objet, String contenu, boolean lu){
		this.objet = objet;
		this.contenu = contenu;
		this.expediteur = new Utilisateur("Benkiki", "Maurice");
		this.lu = lu;
		destinataire = null;
	}

	public Utilisateur getExpediteur() {
		return expediteur;
	}

	public Utilisateur getDestinataires() {
		return destinataire;
	}

	public String getDateEnvoi() {
		return dateEnvoi;
	}
	public void setDateEnvoi(String dateEnvoi) {
		this.dateEnvoi = dateEnvoi;
	}
	public String getObjet() {
		return objet;
	}
	public void setObjet(String objet) {
		this.objet = objet;
	}
	public String getContenu() {
		return contenu;
	}
	public void setContenu(String contenu) {
		this.contenu = contenu;
	}
	public boolean isLu() {
		return lu;
	}
	public void setLu(boolean lu) {
		this.lu = lu;
	}

	@Override
	public String afficher() {
		return expediteur.afficher()+" "+objet;
	}

	@Override
	public void supprimer() {
		//do nothing for the moment
	}
	
	public String toString(){
		return contenu;
	}

	@Override
	public boolean isNew() {
		return !isLu();
	}
	
	public String image(){
		return expediteur.image();
	}

	@Override
	public long getId() {
		// TODO Auto-generated method stub
		return id;
	}

}
